home *** CD-ROM | disk | FTP | other *** search
/ Delphi 2.0 - Programmer's Utilities Power Pack / Delphi 2.0 Programmer's Utilities Power Pack.iso / s_to_z / srwdemo / main.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-09-15  |  6.1 KB  |  238 lines

  1. unit Main;
  2.  
  3. interface
  4.  
  5. uses WinTypes, WinProcs, SysUtils, Classes, Graphics, Forms, Controls, Menus,
  6.   StdCtrls, Dialogs, Buttons, Messages, ExtCtrls;
  7.  
  8. type
  9.   TMainForm = class(TForm)
  10.     MainMenu1: TMainMenu;
  11.     Panel1: TPanel;
  12.     StatusLine: TPanel;
  13.     File1: TMenuItem;
  14.     FileNewItem: TMenuItem;
  15.     FileOpenItem: TMenuItem;
  16.     Panel2: TPanel;
  17.     FileCloseItem: TMenuItem;
  18.     Window1: TMenuItem;
  19.     Help1: TMenuItem;
  20.     N1: TMenuItem;
  21.     FileExitItem: TMenuItem;
  22.     WindowCascadeItem: TMenuItem;
  23.     WindowTileItem: TMenuItem;
  24.     WindowArrangeItem: TMenuItem;
  25.     HelpAboutItem: TMenuItem;
  26.     OpenDialog: TOpenDialog;
  27.     FileSaveItem: TMenuItem;
  28.     FileSaveAsItem: TMenuItem;
  29.     Edit1: TMenuItem;
  30.     CutItem: TMenuItem;
  31.     CopyItem: TMenuItem;
  32.     PasteItem: TMenuItem;
  33.     WindowMinimizeItem: TMenuItem;
  34.     SpeedPanel: TPanel;
  35.     cmdOrders: TBitBtn;
  36.     cmdTasks: TBitBtn;
  37.     cmdProjects: TBitBtn;
  38.     cmdSecurity: TBitBtn;
  39.     cmdCharts: TBitBtn;
  40.     cmdReports: TBitBtn;
  41.     panLogo: TPanel;
  42.     labName2: TLabel;
  43.     labDirections: TLabel;
  44.     labName1: TLabel;
  45.     labTM: TLabel;
  46.     labCopyright: TLabel;
  47.     procedure FormCreate(Sender: TObject);
  48.     procedure FileNewItemClick(Sender: TObject);
  49.     procedure WindowCascadeItemClick(Sender: TObject);
  50.     procedure UpdateMenuItems(Sender: TObject);
  51.     procedure WindowTileItemClick(Sender: TObject);
  52.     procedure WindowArrangeItemClick(Sender: TObject);
  53.     procedure FileCloseItemClick(Sender: TObject);
  54.     procedure FileOpenItemClick(Sender: TObject);
  55.     procedure FileExitItemClick(Sender: TObject);
  56.     procedure FileSaveItemClick(Sender: TObject);
  57.     procedure FileSaveAsItemClick(Sender: TObject);
  58.     procedure CutItemClick(Sender: TObject);
  59.     procedure CopyItemClick(Sender: TObject);
  60.     procedure PasteItemClick(Sender: TObject);
  61.     procedure WindowMinimizeItemClick(Sender: TObject);
  62.     procedure FormDestroy(Sender: TObject);
  63.     procedure cmdReportsClick(Sender: TObject);
  64.     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  65.   private
  66.     { Private declarations }
  67.     procedure CreateMDIChild(const Name: string);
  68.     procedure ShowHint(Sender: TObject);
  69.   public
  70.     { Public declarations }
  71.   end;
  72.  
  73. var
  74.   MainForm: TMainForm;
  75.  
  76. implementation
  77.  
  78. {$R *.DFM}
  79.  
  80. uses ChildWin, SrwMain, SrwCode;
  81.  
  82. procedure TMainForm.FormCreate(Sender: TObject);
  83. begin
  84.   Application.OnHint := ShowHint;
  85.   Screen.OnActiveFormChange := UpdateMenuItems;
  86. end;
  87.  
  88. procedure TMainForm.ShowHint(Sender: TObject);
  89. begin
  90.   StatusLine.Caption := Application.Hint;
  91. end;
  92.  
  93. procedure TMainForm.CreateMDIChild(const Name: string);
  94. var
  95.   Child: TMDIChild;
  96. begin
  97.   { create a new MDI child window }
  98.   Child := TMDIChild.Create(Application);
  99.   Child.Caption := Name;
  100. end;
  101.  
  102. procedure TMainForm.FileNewItemClick(Sender: TObject);
  103. begin
  104.   CreateMDIChild('NONAME' + IntToStr(MDIChildCount + 1));
  105. end;
  106.  
  107. procedure TMainForm.FileOpenItemClick(Sender: TObject);
  108. begin
  109.   if OpenDialog.Execute then
  110.     CreateMDIChild(OpenDialog.FileName);
  111. end;
  112.  
  113. procedure TMainForm.FileCloseItemClick(Sender: TObject);
  114. begin
  115.   if ActiveMDIChild <> nil then
  116.     ActiveMDIChild.Close;
  117. end;
  118.  
  119. procedure TMainForm.FileSaveItemClick(Sender: TObject);
  120. begin
  121.   { save current file (ActiveMDIChild points to the window) }
  122. end;
  123.  
  124. procedure TMainForm.FileSaveAsItemClick(Sender: TObject);
  125. begin
  126.   { save current file under new name }
  127. end;
  128.  
  129. procedure TMainForm.FileExitItemClick(Sender: TObject);
  130. begin
  131.   Close;
  132. end;
  133.  
  134. procedure TMainForm.CutItemClick(Sender: TObject);
  135. begin
  136.   {cut selection to clipboard}
  137. end;
  138.  
  139. procedure TMainForm.CopyItemClick(Sender: TObject);
  140. begin
  141.   {copy selection to clipboard}
  142. end;
  143.  
  144. procedure TMainForm.PasteItemClick(Sender: TObject);
  145. begin
  146.   {paste from clipboard}
  147. end;
  148.  
  149. procedure TMainForm.WindowCascadeItemClick(Sender: TObject);
  150. begin
  151.   Cascade;
  152. end;
  153.  
  154. procedure TMainForm.WindowTileItemClick(Sender: TObject);
  155. begin
  156.   Tile;
  157. end;
  158.  
  159. procedure TMainForm.WindowArrangeItemClick(Sender: TObject);
  160. begin
  161.   ArrangeIcons;
  162. end;
  163.  
  164. procedure TMainForm.WindowMinimizeItemClick(Sender: TObject);
  165. var
  166.   I: Integer;
  167. begin
  168.   { Must be done backwards through the MDIChildren array }
  169.   for I := MDIChildCount - 1 downto 0 do
  170.     MDIChildren[I].WindowState := wsMinimized;
  171. end;
  172.  
  173. procedure TMainForm.UpdateMenuItems(Sender: TObject);
  174. begin
  175.   FileCloseItem.Enabled := MDIChildCount > 0;
  176.   FileSaveItem.Enabled := MDIChildCount > 0;
  177.   FileSaveAsItem.Enabled := MDIChildCount > 0;
  178.   CutItem.Enabled := MDIChildCount > 0;
  179.   CopyItem.Enabled := MDIChildCount > 0;
  180.   PasteItem.Enabled := MDIChildCount > 0;
  181.   WindowCascadeItem.Enabled := MDIChildCount > 0;
  182.   WindowTileItem.Enabled := MDIChildCount > 0;
  183.   WindowArrangeItem.Enabled := MDIChildCount > 0;
  184.   WindowMinimizeItem.Enabled := MDIChildCount > 0;
  185. end;
  186.  
  187. procedure TMainForm.FormDestroy(Sender: TObject);
  188. begin
  189.   Screen.OnActiveFormChange := nil;
  190. end;
  191.  
  192. procedure TMainForm.cmdReportsClick(Sender: TObject);
  193. begin
  194.  
  195.   {turn this demo program's logo panel off}
  196.   panLogo.Visible := False;
  197.  
  198.   {create main shazam report wizard form}
  199.   IF frmSrwMain = NIL THEN BEGIN
  200.      srwIsChild := True; {or False for SDI}
  201.      srwParentForm := MainForm; {or NIL for no parent form}
  202.      Application.CreateForm(TfrmSrwMain, frmSrwMain);
  203.   END;
  204.  
  205.   {customize shazam}
  206.   (*
  207.   frmSrwMain.Setting.Items[srwCaption] := 'Report Designer';
  208.   srwUpdateCaption;
  209.   frmSrwMain.Setting.Items[srwFileExt] := 'RPT';
  210.   frmSrwMain.Setting.Items[srwDefaultAlias] := 'DBDEMOS';
  211.   frmSrwMain.memViewCode.ReadOnly := True;
  212.   frmSrwMain.mnuEditCut.Visible := False;
  213.   frmSrwMain.mnuEditPaste.Visible := False;
  214.   *)
  215.  
  216.   {display shazam}
  217.   frmSrwMain.Show;
  218.   frmSrwMain.BringToFront;
  219.  
  220. end;
  221.  
  222. procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  223. begin
  224.  
  225.   {confirm with user that they actually want to exit}
  226.   IF MessageDlg('Exit the SRW Example Program?',
  227.          mtConfirmation, [mbYes, mbNo], 1) = mrNo THEN BEGIN
  228.      CanClose := False; {cancel the close event}
  229.      Exit;
  230.   END;
  231.  
  232.   {close application properly here, freeing resources, etc.}
  233.  
  234.  
  235. end;
  236.  
  237. end.
  238.